#ifndef PLAYER_H
#define PLAYER_H

#include "board.h"
#include <string>

class Player {
protected:
    std::string name;
    Piece piece;

public:
    Player(const std::string& name, Piece piece);
    virtual ~Player() = default;
    virtual void makeMove(Board& board) = 0;
    std::string getName() const;
    Piece getPiece() const;
};

class HumanPlayer : public Player {
public:
    HumanPlayer(const std::string& name, Piece piece);
    void makeMove(Board& board) override;
};

#endif